//
//  ZzEmotioonToolBar.swift
//  EmojiView
//
//  Created by 张少霞 on 16/5/30.
//  Copyright © 2016年 zsx. All rights reserved.
//

import UIKit

class ZzEmotioonToolBar: UIStackView {
//定义属性 记录当前按钮的
    var currentBtn: UIButton?
//    低昂一闭包
    var selectedIndexCallBack: ((index: Int) -> ())?
    
//   三部曲   初始化  添加UI 实现添加UI的方法    懒加载控件
    init(){
        super.init(frame:CGRectZero)
    
//    backgroundColor = UIColor.redColor()
//        stackView 的属性
//        设置轴
        axis = .Horizontal//水平
//        设置填充方式
        distribution = .FillEqually
        setupUI()
      
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    
//   添加UI的方法
    private func setupUI() {
//    添加三个按钮
        addchildButtons("默认", backImageName: "compose_emotion_table_left", index: 0)
        addchildButtons("Emoji", backImageName: "compose_emotion_table_mid", index: 1)
        
        
        addchildButtons("浪小花", backImageName: "compose_emotion_table_right", index: 2)
        
            
    }
    
    
//    添加UI的方法
    private func addchildButtons(title: String, backImageName: String, index: Int ){
        
        let btn = UIButton()
        btn.tag = index
        
        btn.setTitle(title, forState: .Normal)
        btn.setTitleColor(UIColor.whiteColor(), forState: .Normal)
        btn.setTitleColor(UIColor.darkGrayColor(), forState: .Selected)
        
        
        btn.setBackgroundImage(UIImage(named: backImageName + "_normol"), forState: .Normal)
        btn.setBackgroundImage(UIImage(named: backImageName + "_selected"), forState: .Selected)
        
//        给按钮添加点击事件
        btn.addTarget(self, action: #selector(btnDidClick(_:)), forControlEvents: .TouchUpInside)
        
        
        
//        添加子视图  在stackView 中不能用addSubView 来添加
        addArrangedSubview(btn)
        
//        设置默认选择第一个
        if index == 0 {
            btn.selected = true
            
//            记录选中的按钮
            currentBtn = btn
        }
        
    }
    
//    点击方法
    @objc private func btnDidClick(btn: UIButton) {
    print("按钮被点击")
//       取消之前的选中状态
        currentBtn?.selected = false
        btn.selected = true
        
        currentBtn = btn
        
    
//    执行闭完成回调
        selectedIndexCallBack?(index: btn.tag)
    
    
    }
    

}
